package com.sansui.blog.dao;

import com.sansui.blog.pojo.Type;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @name: TypeDao
 * @author: Sansui
 * @Software: IDEA
 * @Blog: https://www.cnblogs.com/sansui6/
 * @date: 2022-03-21 21:21
 **/

// 分类管理Dao
@Mapper
public interface TypeDao {
    /*
    * 获取所有状态有效的分类信息
    * */
    List<Type> findAllType(@Param("page") Integer page,@Param("limit") Integer limit);

    /*
    * 获取分类数量
    * */
    Integer CountType();

    /*
     * 获取模糊查询的分类数量
     * */
    Integer CountTypeByLike(String typeName);

    /*
     * 根据分类id删除分类
     * */
    Integer deleteType(Long typeId);

    /*
     * 根据分类名称查询分类(直接查询)
     * 用于查询是否存在同名分类
     * */
    Integer findTypeByTypeName(String typeName);

    /*
     * 添加分类
     * */
    Integer addtype(Type type);

    /*
     * 根据名称获取分类信息（模糊查询）
     * 用于查询包含或同名分类
     * */
    List<Type> TypeSearchByName(String typeName);

    /*
     * 根据id获取分类信息
     *
     * */
    Type getTypeById(Long typeId);

    /*
     * 根据分类名获取分类信息
     *
     * */
    Type getTypeByName(String typeName);

    /*
     * 修改分类
     * */
    Integer updateType(Type type);

    /*
    * 批量删除分类
    * */

    void deleteTypeByIds(List<String> delList);


    /**
     * 博客首页，右侧加载分类名称及博客数量
     * 博客数量 --  分类名称
     * @return map集合
     */
    List<Map<String, Object>> countTypeInfo(Integer isPage);

    /**
     * 获取博客对应分类数量
     * @return
     */
    Integer countTypeNum();

}
